package bmatch.tech.file.service;

import bmatch.tech.file.model.Response;

import javax.ws.rs.QueryParam;
import java.io.InputStream;

/**
 * 文件服务
 *
 * @author: Awake
 * @date: 2018-12-02 11:51
 **/
public interface MyFileService {
    /**
     * 上传文件
     *
     * @param inputStream 文件流
     * @param userId      用户主键
     * @param path        所在路径
     * @param name        文件夹名称
     * @return
     */
    Response upload(InputStream inputStream, String userId, String path, String name);

    /**
     * 删除文件
     *
     * @param userId 用户主键
     * @param path   所在路径
     * @param name   文件名称
     * @return
     */
    Response delete(String userId, String path, String name);

    /**
     * 改名
     *
     * @param userId       用户主键
     * @param path         所在路径
     * @param originalName 原名称
     * @param targetName   更改名称
     * @return
     */
    Response rename(String userId, String path, String originalName, String targetName);

    /**
     * 转移
     *
     * @param userId       用户主键
     * @param name         名称
     * @param originalPath 原路径
     * @param targetPath   更改路径
     * @return
     */
    Response shift(String userId, String name, String originalPath, String targetPath);

    /**
     * 下载文件
     *
     * @param userId 用户主键
     * @param path   路径
     * @param name   文件名
     * @return
     */
    javax.ws.rs.core.Response downloadFile(String userId, String path, String name);
}
